October 28, 2016

MacStories Weekly: Issue 54

In this issue: Trello, Learn Something, Hundter Biede’s Home screen, plus the usual Workflow Corner, Weekly Q&A, Tip, Links, and recap of MacStories articles.

We made some minor design tweaks to the design of this email this week, and in particular you might notice that we’re now using Open Sans as the font for the entire newsletter. If you happen to run into anything that don’t quite look right, or you have a suggestion for how we could improve anything, please let us know.

MACSTORIES RECOMMENDS

Great apps, accessories, gear, and media recommended by the MacStories team.

Trello

Trello is a project management service based on the kanban paradigm: projects are organized in boards; each board is made of lists, and tasks in a list are called “cards”. Cards can contain additional information such as comments, files, or checklists; they can be assigned to collaborators; and, more importantly, cards can be moved between lists as their priority or completion status changes.

We’ve been using Trello for Club MacStories management for several months now, and it’s become an essential part of how we organize the content we publish in the newsletters and even how members can submit their own questions. At this point, Trello is just as important as Workflow or Todoist for us.

Beyond the iOS app – which gets the job done and supports Universal Links to easily open links to boards and cards – Trello offers an open API that enables other services to integrate with it. At MacStories, we have created a Zapier flow that creates a new Trello card every time a Club member submits a question with Google Forms; in Trello, we can then look at the question, label it, assign it to someone, and move it to a list for the next newsletter we’re publishing.

In addition to Google Forms, we have connected Trello to our Slack account to be notified when someone comments on a Trello card, and I created another Zapier flow that puts a task in my Todoist if I’m chosen as a member of a Trello card. By keeping everything together in Trello, the service’s third-party integrations let us move specific bits out of Trello and into dedicated apps – and each one of us is free to use the integrations they prefer.

I love how Trello displays rich cards with embedded images and I find the drag & drop interactions satisfying and intuitive. Because I like Trello’s open and collaborative nature so much, I’ve decided to move many of the Club notes I was keeping in Apple Notes – now, both Graham and John can see what I’ve been saving in my notes for the newsletter. I even made custom API-based workflows for Trello.

If you’re looking for a different way to organize your projects, Trello’s visual approach is terrific, and the integrations with third-party apps and web services are essentially limitless.

MACSTORIES COLLECTIONS

Learn Something

The educational app category is full of great apps for school-aged kids, but there are also great apps for adults. When I first looked at apps for learning something new, they were primarily focused on computers, math, and science. Now, however, what you can learn is only limited by your own imagination. Here are a few of my favorites.

iTunes U

iTunes U’s impact on the educational app category can’t be understated. Slowly over time, it has gained a number of abilities. Where once it was just a way of organizing lecture videos, now courses can include outlines, ebooks, and other apps in a rich multimedia experience.

iTunes U has features that make it useful in the classroom, but it’s just as easy for any self-learner to get started. In the past, I’ve taken Stanford’s iOS programming course and some introductory computer science classes from other schools, but today, the catalog of courses available is far deeper and broader than it once was. Whether your interests lie in literature, history, the arts, languages, or something else, there is probably a course for it on iTunes U and best of all, all courses are free.


Coursera

Coursera is dominated by major US universities. The courses are a little like interactive text books that consist of videos integrated with text, homework assignments, and quizzes. I like Coursera’s approach of breaking down subjects into smaller digestible chunks and encouraging students to learn at their own pace. Individual courses can be taken, but Coursera emphasizes what it calls Specializations. Enrolling in a Specialization can cost a few hundred dollars, but most single courses can be enrolled in for around $50–80.


Edx

EdX is also dominated by large US universities, but the courses are free unless you want a certificate at the end. Unlike Coursera, EdX’s iOS app does not support the iPad, which feels like a missed opportunity for an app that is dominated by video. Nonetheless, I appreciate EdX’s greater emphasis on free courses, which makes it easier for people to dabble until they find something that fits their interests.


Py

Py started out as an interactive app for learning programming, math, science, and similar topics. Recently, Py launched version 3 of its app, which added humanities courses like grammar and US History. The course selection is more limited than other options and it doesn’t include a video component, but Py is free and its interactive quiz model makes learning at your own pace easy.


Mimo

I couldn’t help but include one ‘learn to program’ app in the collection. I covered apps for learning to code in Weekly #40 before Mimo was released. Among the apps I covered before was Swifty, an interactive app for learning Apple’s Swift programming language. Its creator, Johannes Berger, has expanded his scope with Mimo, which lets you pick among several popular programming languages. Like Swifty, Mimo emphasizes completing missing code and showing the results of your mini-programs in a console that appears at the bottom of the screen. The lessons start with two free chapters so you can get a taste of each course. To continue beyond the first two chapters you need to sign up for a subscription. Mimo is available on iPhone only.

RELAX, IT'S THE WEEKEND!

It's the weekend (or almost is) and you deserve a break. Here's something we enjoyed watching, playing, reading, or listening to.

Battlefield 1

Game (Xbox One, PS4, PC)

Last week I bought Battlefield 1, which despite its name, is just the latest in a long line of Battefield games from EA and DICE. Unlike some of the previous Battlefield games, Battlefield 1 doesn’t try to be a Call of Duty and it takes a refreshing approach in its single player campaign. Rather than a long, drawn out, and absurd campaign where the outcome of the war seems to rest on the actions of the character you control, Battlefield 1 features an anthology of so called “War Stories”. The choice of going with an anthology, with each story featuring a different character, means that even though each of their stories is epic, it doesn’t become ridiculous.

I really enjoyed the War Stories and the variety contained within each of them. In one you’ll be a daring and cheeky American pilot who is shot down and must make his way through no man’s land to rescue his gunner. In another you’ll play as a female rebel, depicted in the game as the right hand of Lawrence of Arabia, as she helps to destroy a giant Ottoman armoured train in the epic final mission.

I need to mention one more thing. This game is set in World War 1, and it could be seen to be somewhat uncomfortable to make a piece of entertainment that could in some sense glorify the horrors and belittles the sacrafices of those who served. But I think Battlefield 1 handles this potential conflict with honesty, respect and a sombre tone. This is exhibited right from the very start of the campaign with what I thought was a confronting, but appropriate, first War Story that sets the tone (which you can watch here).

There is of course also multiplayer, which I am enjoying a lot, but I haven’t played enough of it to come to a conclusive opinion yet.

TIPS

Tips and tricks to master your apps and be more productive.

Text Replacement

It is highly likely that there are particular phrases that you type repeatedly over the course of a day or week. Built in to iOS and macOS is a text replacement feature that allows you to set a text shortcut which you can use to quickly insert a particular phrase. For example, you probably enter your email address multiple times a week, but you could simplify that by assigning your email address a shortcut such as “@@”. Or maybe you want to be able to quickly send ¯\_(ツ)_/¯ to someone so you set “/shrug” as the shortcut.

You can create and edit your own phrases and shortcuts here:

  • On iOS: Settings > General > Keyboards > Text Replacement.
  • On macOS: System Preferences > Keyboard > Text.

If you think this feature would be useful to you, but need some more powerful options, consider TextExpander.

SHORTCUTS CORNER

Get help and suggestions for your iOS shortcuts and productivity apps.

Shortcuts Essentials

Direct Download to Dropbox

As we’ve discussed several times on MacStories Weekly in the past, downloading files is one of the areas where iOS is still lagging behind macOS.

Unlike the desktop version, Safari doesn’t have a full-featured download manager on iOS, nor does the iOS UI clearly indicate what type of file is being “downloaded” when you tap on a link and the progress bar starts loading. Some of the issues, however, are inherent to the nature of iOS: unlike desktop computers, which are connected to WiFi most of the time, iOS devices are primarily used on the go; cellular usage becomes a hurdle when downloading large files.

I’ve been thinking about this problem lately, looking for a better solution than having to connect to a Synology NAS to initiate a download. When I was researching the Dropbox API for the latest version of Workflow, I came across a method to start a download for a remote URL, saving the file directly into your Dropbox account without having to download it locally on-device first. After playing around with it for a few days, I realized that the Dropbox API could be combined with Workflow and used to download files from the web to Dropbox while overcoming iOS Safari’s shortcomings and the system’s lack of a download manager. Thus, I wrote a workflow to download files to Dropbox directly over the API.

Before you can use the workflow, you’ll have to create a Dropbox app, set it to “In Development” status, and copy its access token, which is exclusive to your account. This is a necessary step to ensure Workflow can communicate with the Dropbox API, but don’t let the idea scare you. Registering a Dropbox app takes less than a minute and the process is extremely intuitive:

  1. Go here and create a new app:
  2. Give it a unique name, which stays private to you;
  3. Grant the app access to your full Dropbox and set it to “In Development” for personal use;
  4. Tap the app’s name, scroll, and generate an access token;
  5. Paste the access token at the top of the workflow in the first Text action.

Only you will be able to use this Dropbox app (provided you don’t share the token with anyone else), so store your credentials somewhere safe, like 1Password.

Now, let’s take a look at the workflow. The token is stored in a text variable that will be used as the header of a POST request later on. Before making any API calls, the workflow assumes you have a link to a public download in your clipboard; Workflow will fetch the link and use a regular expression to extract the filename and extension at the end of the URL (more specifically: any character after a forward slash followed by a dot and a word item before the end of a string – e.g. http://example.com/MyDownload.mp3).

I chose to do it this way so that the downloaded file would have the same filename of the URL version; by default, the workflow will put downloads in the root of your Dropbox as defined by the single ‘/’ in the Name variable. If you want to change the location of the download, modify the base path of the Text action that goes into the Name variable.

The method that Workflow calls on the API is https://api.dropboxapi.com/2/files/save\_url, which tells Dropbox to start downloading a file stored at a specific URL without having to pass through a native client first. The request is a POST one, with a JSON request body where the two parameters – url and path define where the file comes from and where it’ll be saved in your Dropbox, respectively.

At this point, I could have stopped the workflow and hoped for the best. But that wouldn’t have been fun, and it would have added a layer of confusion to the experience. Because after Workflow makes the request, Dropbox should begin the download of the file directly to your account, but it’d be useful to check on the status of the download and know if it was accepted, how it’s going, and when it’s done.

After the first request, Dropbox returns a dictionary where one key – async_job_id – gives us an ID of the download task that was started for your account. With that ID, we can hit another API endpoint at https://api.dropboxapi.com/2/files/save_url/check_job_status to see the status of the download. Dropbox will return this information in two ways: as in-progress or complete.

Normally, small files should download within a couple of seconds, but larger files may require a few minutes to be saved into your Dropbox. For this reason, I put a series of checks into the workflow that iterate over the task’s ID and ask you to check again on the completion status of the download until it’s complete.

If, after the first check, the download is reported as complete, an alert will tell you so. However, if the download is still in progress, Workflow will tell you about the ongoing download and ask you if you want to check again.

This repetition is based on a Repeat loop with a custom value of 1000 – a high number that means you’ll be able to check on an ongoing download up to 1000 times (ideally, you will only need to check a handful of times). The loop will repeat itself over and over while the download is in progress on Dropbox.

Once the download is done, the alert will change and the loop will break.

At this point, you’ll have the choice of creating a shared link for the newly downloaded file, opening it in the Dropbox app as a Universal Link.

The API call to https://api.dropboxapi.com/2/sharing/create_shared_link accepts a single parameter to create a shared link for a file – the same Name variable with the download path we created at the beginning of the workflow. After creating the link, Workflow will copy it to the clipboard and open it in the Dropbox app (if installed), letting you confirm that the file now lives in your Dropbox with the option of sharing it with others.

I’ve been working from iOS for almost five years now, and I can’t tell you how many times I had to wait for downloads to finish in a third-party download manager or just give up and remember to download a file later on my Mac. With this workflow, I can leverage the app’s fantastic web API actions to save bandwidth on my device, reclaim storage, and, more importantly, let Dropbox’s fast servers download files on my behalf and put them on my account in seconds.

In my tests, the workflow has worked well for the majority of servers and file URLs, but some CDNs (like Rackspace) often refused to let Dropbox fetch files for download. Furthermore, if you want to download a file stored behind a short URL, you’ll have to use the ‘Expand URL’ action to reveal the complete path of the download on the web.

Whether you want to download podcast episodes, videos, or other assets you keep in Dropbox, this workflow should improve how you deal with downloads on your iPhone and iPad. As someone who has gone all-in on cloud storage and backups, an easy way to add downloads directly to my Dropbox account was the missing piece of the puzzle.

You can get the workflow here.

Save Safari Links as Rich Cards in Trello

In an effort to consolidate our editorial calendar in Trello, I recently moved three text files I was keeping in Apple Notes – App Debuts, Weekly Links, and The Album – to our Club MacStories Trello board. These notes are updated every day with new content; there was no reason I shouldn’t let the rest of the team know what I was saving for Friday, so it made sense to move those to Trello as well.

Workflow ships with native Trello actions, but they lack one feature we rely upon for our board’s organization: labels. We use labels on Trello to indicate whether the entire team or specific members are responsible for certain tasks, and I need to be able to filter tasks that have been assigned to me with the yellow Federico label. This alone was worth experimenting with the Trello API and learning how to enhance what Workflow can already do with it.

First, I had to create an API key and a token to make requests to the Trello API. Then, before moving onto the main workflow, I had to fetch the IDs of the Trello boards, lists, and labels I was going to automate.

Thankfully, these IDs can be fetched through dedicated endpoints: as you can see in these two workflows, it was all a matter of making a GET request with my account and copying the IDs returned in the response from the Trello API. I temporarily stored the IDs in Copied so I could paste them later in Workflow.

For my Weekly Links note, I knew I wanted to make a workflow that, when passed a URL, would save it as a rich Trello card with:

  1. The article’s title as name;
  2. The lead image of the story as cover image in Trello;
  3. A description containing a tappable link at the top (to reopen the link).

That meant I had to work with three types of article details: URL, title, and cover image. Fortunately, Workflow ships with a built-in ‘Get Article from Web Page’ action that, when combined with ‘Get Details of Articles’, returns a variety of details about web articles (this action is powered by diffbot behind the scenes). Using those actions was key to assembling the variables needed to turn an article into a rich Trello card.

To create a card with the Trello API, we need to make a POST call with a Form request body containing the list’s ID, a card’s title and due date (null in my case) and, optionally, a description (which can be in Markdown), a URL source, and labels. This is where the previously copied IDs for lists and labels came in handy.

The Trello API, however, doesn’t attach a cover image to a new card upon adding it; putting a cover image on a card has to be a second API call. Thus, the workflow makes another POST request with a multipart Form body that passes the image file parsed from the article, which will be used to present the card in the Trello list.

The final product is a list where each link I (and others) save is a beautiful card with the necessary context to remember why we saved it and read the story again. Overall, this is much better than what I used to do with Notes by myself, and it’s only the beginning of my experiments with the Trello API.

You can get the workflow here.

Submit a Shortcut Request

SHORTCUTS CORNER

Get help and suggestions for your iOS shortcuts and productivity apps.

Member Requests

Question: Is it possible to automate the creation of new items in MindNode or iThoughts? (Bill Cummings)

Yes. The excellent iThoughts comes with a powerful URL scheme to automate the creation of new maps, as well as modifying existing maps with new data. You can pass Markdown to the URL scheme and iThoughts will automatically convert it to a map while preserving the correct indentation of headers – this is a great way to turn outlines you started in Markdown into richer mind maps.

You can check out a sample workflow I made to be run from a text editor here. To try it, share some Markdown text with the share sheet, run the workflow, enter a map name, and iThoughts will open, converting your plain text to a mind map.

You’ll notice that in the URL scheme, I used style=TicciStyle. Besides being a way of life, that’s the name of a map style I created in iThoughts so it can be recalled by other maps at any time. You can read more about map styles here.

Question: I add a few lines of text in the Drafts app. I need an action to add the same tag to each line. For example:

  1. Input: bread, apple, banana (one per line);
  2. Output: bread @grocery, apple @grocery, banana @grocery (one per line).

(zaur, @zaurww)

This was easy to put together with Workflow (I’m not well versed in JavaScript actions in Drafts). The workflow gets text from the input (sent from Drafts), it splits it in multiple lines, and it appends the tag for each line. Each line is added to a List variable, and the modified lines are then joined with a ‘Combine Text’ action. At the end, you’ll get the modified lines of text that you can copy or share with other apps.

You can trigger the workflow directly from Drafts, or from any other text editor with the action extension. You can get the workflow here.

Submit a Workflow Request

Submit a Shortcut Request

WEEKLY Q&A

Your weekly correspondence with the MacStories team.

Question: What app do you use or recommend to scan old photos on iOS? (Bart Vermeiren, @bart2525)

If you don’t want to use a traditional scanner app that outputs scans to JPEG (I recommend Scanbot and Scanner Pro), you might want to consider a dedicated utility built specifically to scan old photographs. Unfade, made by the same developers behind Scanbot, lets you scan old pictures with the option to revive their colors and share them with other apps. I’d try with a scanner app first, but Unfade might be what you’re looking for.

Question: I use a web app via iOS Safari that has the ability to have the user upload files to the website. When you get an upload control like that in Safari, you get a button to pick a file. Tapping it gives you (typically) Camera, Photo Library, followed by all document providers on your device including iCloud Drive.

What I’m trying to do is smoothly scan a multi-page document into a PDF then upload it to this website. So typically I go into Scanbot, perform the scan to PDF, and in Scanbot save the file to iCloud Drive. Then, I flip back to Safari and choose upload, iCloud Drive, and pick the PDF. This works, but I would like to eliminate the “save to iCloud Drive” intermediate step. Do you know any way around this? And/or and Scan-to-PDF apps that expose their files via iOS document providers? (Padraic Renaghan, @prenagha)

I haven’t tried any scanner apps with their own document provider, but I know that you can simplify the saving process in Scanbot by turning on automatic iCloud Drive sync. In Scanbot, go to Settings > Cloud Services and turn on iCloud Drive sync. This will allow Scanbot to automatically put scans in iCloud Drive after the image has been processed, which should eliminate the step of manually exporting a file to iCloud.

Question: I use the three dots quite often (ellipsis for English grammar) at the end of a sentence. Since iOS 10, the word following the ellipsis isn’t capitalized automatically, but it was under iOS 9 and previous versions. Can I restore this useful trick? (Luigi, @lmandraccio)

Different style manuals take different approaches to the ellipsis. When used to indicate omitted information that coincides with the end of a sentence, the ellipsis plus a period (so effectively four periods) is typically used. In this scenario, iOS will capitalize the next word because it marks the beginning of the next sentence. If you use an ellipsis (three periods) to indicate omitted information mid-sentence, the next word should not be capitalized in most circumstances, which is why I suspect Apple does not automatically capitalize after an ellipsis. For those who don’t know, you can type an ellipsis on the iPhone’s keyboard by holding down the period button until the alternative character popup is displayed. On the larger iPad Pro, the ellipsis has its own software key.

Another option, particularly if you’re using the Smart Keyboard on an iPad Pro, is to create a Text Replacement (see this week’s Tip above). Simply insert the ellipsis as the phrase and then a shortcut to trigger it (e.g. three periods). I tested this and when the ellipsis was inserted the following word was not capitalized.

Submit your own question

THE ALBUM

We love stickers in iMessage, and here we'll share some of our favorites.

Pusheen

From the webcomic series on the life and dreams of a gray tabby cat, this sticker pack shows Pusheen with multiple emotions and adventures. If you already know Pusheen, this is a must-have.

Sushi Stickers

More delicious food-inspired puns – a strong category on the iMessage App Store – this time with sushi. Highlights include “you make miso happy” and “I like the way you roll”.

Pun Pals: Howl-O-Ween

More cute puns about Halloween and scary monsters, only designed with a colorful style that doesn’t make them scary at all. “Busted” is an instant classic.

Geometric Gang

I’m not sure what this gang of geometric friends is up to, but I like the style, and they’re nice to use in conversations. The sleepy one is my jam.

Dancing Food

Remember when I mentioned I was a fan of the dancing bacon guy in the Rag Tag sticker pack? Imagine if dancing bacon guy brought along his squad in a separate sticker pack, and you’ll get Dancing Food. These stickers are animated and the characters are hilariously weird.

Beagle Emoji

I love beagles, and the beagle in this sticker pack takes part in a variety of real life scenarios such as drinking coffee, meditating, and waiting for food. That’s my kind of beagle.

Rejoinders

I don’t know if you’ve ever come across Twitter accounts that turn historic paintings into memes – I think they’re hilarious. With this sticker pack, you’ll be able to send peculiar faces from old paintings and use them as emoji-like reactions. They’re somewhat creepy and amazing.

200 Pixel Art Stickers

This huge sticker pack of 200 pixel art people and creatures includes fun images of aliens, Santa Claus, a guy dressed in a hot dog suit, and an angry penguin.

Find Chaffy

Find Chaffy is a series of children’s books like Where’s Waldo, in which you need to find a cute little rabbit-like creature among complex drawings. With Find Chaffy stickers you can now add a wide variety of cute Chaffies to your conversations.

Dramatic Ellipsis…

Dramatic Ellipsis… helps you add a little comic book-style drama to conversations with narrative boxes that say things like ‘Elsewhere,’ ‘Meanwhile…,’ and ‘Is this the End?,’ which is perfect for telling a story in Messages.

APP DEBUTS

Noteworthy new app releases and updates, handpicked by the MacStories team.

Cardiogram

Cardiogram continues its quest to turn heart rate captured from the Apple Watch into meaningful insights to improve your lifestyle. Version 2.0 introduces Habits, a feature aimed to improve your health in 3 categories: Fitness, Sleep, and Stress. You can monitor how an ongoing habit is affecting your heart rate over time, and you can even invite friends to keep you accountable and motivate you.


AnyList

The popular shopping list and recipe manager has recently received an Apple Watch version. You can now quickly open your lists from a complication and cross off items from your wrist. The Apple Watch app is exclusive to AnyList Complete subscribers.


iStat 3

A major update to Bjango’s renowned monitoring tool to keep tabs on vital stats from your Mac, PC, or cloud server. iStat displays a wide range of system stats, building history graphs with support for iCloud sync between devices. I’ve been using iStat for years, and the new version looks great.


Findo

This newly launched search assistant wants to connect to all your most important web services – Gmail, Dropbox, Outlook, and more – to let you retrieve any file or piece of data with natural language. Provided you’re okay with the service’s privacy policy, the feature set seems impressive and promising.


Perchang: Black

Perchang is a great physics-based puzzle game that I reviewed for Game Day in July. The game, which garnered overwhelmingly positive reviews in the game press, received an update this week known as Perchang: Black. The update is available via a $1.99 In-App Purchase and includes a black background that works as a sort of dark mode, new puzzles, and zero gravity levels. Perchang: Black, also includes the ability to stream live using iOS 10’s new ReplayKit APIs. You can watch a video preview here.

STRAW POLL

Opinions on Apple and technology generally, from Club MacStories members.

#16

HOME SCREENS

Friends of MacStories share their iPhone, iPad, and Apple Watch Home screens.

Hundter Biede

Twitter: @HBiede. Club MacStories Member.

My iPhone is my primary day-to-day device, and so it must contain about every possible app for my daily tasks. I preordered an iPhone 7 Plus (#MykeWasRight) and as always, I started fresh with this device, and I followed the same pattern that I have used on all my iPhones over the years.

As the easiest spot to reach, my dock contains the most important apps, namely Launch Center Pro and Messages. LCP is very useful for quickly opening regularly used documents or other functions (I use the 3D Touch for quick access to running a few well-used workflows, and a QR code reader), and Messages is my primary form of communication, especially after the recent improvements given in iOS 10, so it more than earns its keep in the dock. The dock also contains some more frequently used apps in the folder, some highlights of which include Overcast to feed my podcast addiction, Tweetbot because I prefer it to the default Twitter client, CARROT for weather, and of course Workflow for all my automation needs.

My top row features my junk drawer folder, my media folder (which of course features Relay FM for the great stickers), and Medium, which I occasionally use for short posts similar to a blog. The second row features my games folder and my “Actions” folder. These are apps that I mainly use for short, actionable tasks. And the last row features both 2Do and OmniFocus and also Scrivener and Mail. I am using both 2Do and OmniFocus after the recent episode of Cortex in which Grey described how he has begun using both for various reasons and I began using my own implementation of his use case. Scrivener is useful for the longform writing I do on occasion. And Mail is a recent addition to my Home screen. I had been a user of Spark prior, but I decided to try the default Mail app again to see how it has changed.

The layout of my apps, just like my calendar and task management implementations, is inspired by the discussions between Grey and Myke on Cortex. This can be seen in the three items in the dock (it really does just look better than 4…), the bullet points for folder names, the low-poly wallpaper, and the filled rows of apps without any extra apps on partially filled lines. But, this is far from a finalized Home screen. I am always on the hunt for new and better ways to accomplish tasks on my iPhone, and will probably be vastly different in a few years.

Submit your own Home Screen